package com.mymarkdown.app.util;

import com.mymarkdown.app.common.constant.Constant;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

/**
 * @author zenglun
 * @date 2021/12/8 9:34 下午
 * @description: TODO
 */
public class JsoupUtil {

    /**
     * 将SVG尺量图转换为Image图片,并将图片存放在一个临时的文件夹中,图片名称采用当前日期进行生成
     *
     * @param element
     * @param tempImage
     */
    public static void svgToImg(Elements element, String tempImage) {
        //替换流程图图片,将尺量图替换为png图片，解决pdf文档不显示尺量图问题
        //此处代码解决时序图不显示问题
        element.select("use[xlink:href]").remove();
        element.forEach(el -> {
            Element node = null;
            try {
                String nodeHtml = el.html();
                String tempImagePath = tempImage + "/" + FileUtil.getRandomFileName() + ".png";
                SvgToPngUtil.convertToPng(nodeHtml, tempImagePath);
                node = new Element("img");
                //开始替换操作
                node.attr("src", String.format(Constant.BASE_IMAGE_PATH, tempImagePath));

                node.addClass(Constant.ZOOM_IMG_CLASS_NAME);
            } catch (Exception e) {
                e.printStackTrace();
                // 通知用户转换失败
                node = new Element("div");
                node.text("图片丢失,无法转换图片!");
            }
            el.replaceWith(node);
        });
    }
}
